﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using LostHobbits.Scene;

namespace LostHobbits.GameStates
{
    public abstract class GameStateBase
    {
        #region fields
        
        #endregion

        #region properties
        
        /// <summary>
        /// The game scene that should be rendered
        /// </summary>
        protected GameScene Scene { get; set; }

        /// <summary>
        /// Indicates that the state should end
        /// </summary>
        public bool StateEnd { get; private set; }
        
        #endregion

        
        /// <summary>
        /// 
        /// </summary>
        public GameStateBase()
        {
            StateEnd = false;
        }

        #region Methods

        /// <summary>
        /// 
        /// </summary>
        /// <param name="gameTime"></param>
        protected abstract void Update(GameTime gameTime);
            
        /// <summary>
        /// Executes the command (keyboard/control) given from user. 
        /// </summary>
        /// <param name="command"></param>
        protected abstract void ExecuteCommand(LostHobbits.Input.CommandType command);
    
        #endregion

    } 
}
